1. Field of the Invention
Embodiments of the invention are related to data processing and more particularly to tools used to develop application software.
2. Description of the Related Art
Developing software applications is a complex task, and IDE tools are available to assist computer programmers with the development process. Currently, IDE tools are available to assist programmers developing applications in a variety of programming languages (e.g., Java®.net, C, C++, C#, etc.). These tools are typically configured with features such as auto-indenting, syntax highlighting, type checking, and a variety of other features that assist the development process. Typically, IDE tools are optimized for different programming languages.
One common feature provided by IDE tools is the capability to generate application source code or other project artifacts for a development project (e.g., XML documents, resource files, install scripts, etc.) More specifically, currently available IDE tools may be configured to auto-generate pre-defined types of application source code or artifacts based on a pre-defined set of inputs. For example, frequently, a “wizard” or other interface construct may allow a user to create a new development project as a “console” application or a “windowed” application or allow a user to generate some related artifact such as project documentation (e.g., the Javadoc tool). Similarly, an IDE tool may be configured to create a framework for a web-service or some other application type. In such a case, however, the IDE tool may only be configured to build a generic web-service framework or in some cases a web-service framework localized for a particular application server. One problem with this approach is that developers wish to create an application package that may be used on a variety of commercially available application servers. Thus, even when the IDE tool generates a comprehensive web-service for a given application server, it locks the developer into that application server. To use others, the developer has to either develop multiple versions of their web-service by hand or attempt to modify the one generated by the IDE tool, an ad-hoc and error-prone process at best.
Further, what may be generated by a given IDE tool for a development project is generally limited to what is “hard-wired” into that IDE tool. In other words, it is left to the developer to build most of the application, and at best the available IDE tools may provide various options in the form of user preferences that allow developers to customize what is created by the IDE tool. And even this still requires the developer to have knowledge of the type and extent of customization that is offered by the IDE tool. Importantly, for any new user customizations, IDE tool builders have to release new versions of the IDE tool, developers have to wait (and usually pay) for changes in what code-generation features are included in a given IDE tool. Thus, based on the foregoing limitations in currently available IDE tools, the currently available IDE tools are very rigid in what may be auto-generated for the developer, and are generally restricted to generating generic “barebone” application source code.
Accordingly, there remains a need in the art for an IDE tool that provides for extensible rapid application development for disparate data sources.